<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSP</title>
  </head>
  
  <body>
  	<div id="menuDiv"></div>
  	<button id="submit">确认</button>
  </body>
  
  <script type="text/javascript" src="../../js/jquery.js"></script>
  <script type="text/javascript">
  	//确认
  	$("#submit").click(function(){
  		var delPatArray=delPat.split(";");
  		var addPatArray=addPat.split(";");
  		for(var i=0;i<delPatArray.length;i++){
  			for(var j=0;j<addPatArray.length;j++){
  				if(delPatArray[i]==addPatArray[j]){
  					delPatArray[i]="";
  					addPatArray[j]="";
  				}
  			}
  		}
  		var delSonArray=delSon.split(";");
  		var addSonArray=addSon.split(";");
  		for(var i=0;i<delSonArray.length;i++){
  			for(var j=0;j<addSonArray.length;j++){
  				if(delSonArray[i]==addSonArray[j]){
  					delSonArray[i]="";
  					addSonArray[j]="";
  				}
  			}
  		}
  		var delMenu="";
  		var addMenu="";
  		//删除菜单
  		for(var i=0;i<delPatArray.length;i++){
  			if(delPatArray[i]!=""){
  				delMenu+=delPatArray[i]+";";
  			}
  		}
  		for(var i=0;i<delSonArray.length;i++){
  			if(delSonArray[i]!=""){
  				delMenu+=delSonArray[i]+";";
  			}
  		}
  		//添加菜单
  		for(var i=0;i<addPatArray.length;i++){
  			if(addPatArray[i]!=""){
  				addMenu+=addPatArray[i]+";";
  			}
  		}
  		for(var i=0;i<addSonArray.length;i++){
  			if(addSonArray[i]!=""){
  				addMenu+=addSonArray[i]+";";
  			}
  		}
  		//根据roleId更新个人菜单
  		$.ajax({
  		 type:"POST",
  		 url:"publicInfoManager.action?method=updateMenuByRole",
  		 data:"delMenu="+delMenu+"&addMenu="+addMenu,
  		 success:function(msg){
  		 	window.location="menuClassify.jsp";
  		 }
  		});
  		
  	});
  	
  	//删除父菜单记录
  	var delPat="";
  	//删除子菜单记录
  	var delSon="";
  	//添加父菜单记录
  	var addPat="";
  	//添加子菜单记录
  	var addSon="";
  	
  	//删除父菜单按钮
  	function delPatMenu(index){
 		delPat+=$("#fontm"+index).text()+";";/////////////////////////////////////////////////////////////////
 		$("#ulId"+index).hide();
 	}
 	//删除子菜单按钮
 	function delSonMenu(index){
 		delSon+=$("#lim"+index).text().substring(0,$("#lim"+index).text().length-2)+";";/////////////////////////////////
 		$("#lim"+index).hide();
 	}
 	//添加子菜单按钮
 	function addSonMenu(index){
 		//移除所有select标签
 		removeAllSel();
 		var str="<select onblur='loseBlur(this);' onchange='selSonMenu("+index+");' id='sonMenu"+index+"'><option>--请选择--</option>";
 		for(var i=0;i<$("#ulId"+index+" li").size();i++){
 			if($("#ulId"+index+" li:eq("+i+")").css("display")=="none"){
 				str+="<option>"+$("#ulId"+index+" li:eq("+i+")").text().substring(0,$("#ulId"+index+" li:eq("+i+")").text().length-2)+"</option>";
 			}
 		}
 		str+="</select>";
 		$("#addSonA"+index).after(str);
 	}
 	//选择子菜单下拉列表
 	function selSonMenu(index){
 		var selText=$("#sonMenu"+index).find("option:selected").text();
 		for(var i=0;i<$("#ulId"+index+" li").size();i++){
 			if($("#ulId"+index+" li:eq("+i+")").text().substring(0,$("#ulId"+index+" li:eq("+i+")").text().length-2)==selText){
 				if($("#ulId"+index+" li:eq("+i+")").css("display")=="none"){
 					$("#ulId"+index+" li:eq("+i+")").show();
 				}
 			}
 			
 		}
 		addSon+=selText+";";///////////////////////////////////////////////////////////////////////////////////
 		$("#sonMenu"+index).remove();
 	}
 	
 	//移除所有select标签
 	function removeAllSel(node){
 		$("select").remove();
 	}
 	//失去焦点时移除当前select标签
 	function loseBlur(node){
 		node.remove();
 	}
 	
 	//添加父菜单按钮
 	function addPatMenu(index){
 		//移除所有select标签
 		removeAllSel();
 		var str="<select onblur='loseBlur(this);' onchange='selPatMenu("+index+");' id='patMenu'><option>--请选择--</option>";
 		for(var i=0;i<index-1;i++){
 			if($("ul:eq("+i+")").css("display")=="none"){
 				str+="<option>"+$("font:eq("+i+")").text()+"</option>";
 			}
 		}
 		str+="</select>";
 		$("#addPatA").after(str);
 	}
 	//选择父菜单下拉列表
 	function selPatMenu(index){
 		var selText=$("#patMenu").find("option:selected").text();
 		for(var i=0;i<index-1;i++){
 			if($("ul font:eq("+i+")").text()==selText){
 				if($("ul:eq("+i+")").css("display")=="none"){
 					$("ul:eq("+i+")").show();
 					$("ul:eq("+i+") li").show();
 				}
 			}
 		}
 		addPat+=selText+";";/////////////////////////////////////////////////////////////////////////////////////////
 		$("#patMenu").remove();
 	}
 	
  	$(function(){
  		$.ajax({
		 type:"POST",
		 url:"publicInfoManager.action",
		 data:"method=queryAllMenu",
		 success:function(msg){
		 	var str="";
		 	var index=1;
		 	for(var m in msg){
		 		str+="<ul id='ulId"+index+"' style='width:15%;float:left;height:25%;'><a onclick='delPatMenu("+index+");'>-</a>&nbsp;<font id='fontm"+index+"'>"+m+"</font>";
		 		for(var j=0;j<msg[m].length;j++){
		 			str+="<li id='lim"+index+j+"'>"+msg[m][j].menuName+"&nbsp;<a onclick='delSonMenu("+index+j+");'>—</a></li>";
		 		}
		 		str+="<a id='addSonA"+index+"' onclick='addSonMenu("+index+");'>+</a></ul>";
		 		index++;
		 	}
		 	str+="<ul style='width:15%;float:left;height:25%;'><a id='addPatA' onclick='addPatMenu("+index+");'>+</ul></a>";
		 	$("#menuDiv").html(str);
		 	//设置ul字体
		 	$("ul").css("font-size","27px");
			$("ul").css("color","blue");
			$("ul li").css("font-size","20px");
			$("ul li").css("color","gray");
			//全部隐藏
			$("ul").hide();
			$("ul li").hide();
			$("ul:eq("+($("ul").size()-1)+")").show();
			//设置按钮样式
			$("a").css("cursor","pointer");
			$("a").css("color","green");
			$("a").hover(
				function(){
					$(this).css("color","yellow");
				},
				function(){
					$(this).css("color","green");
				}
			);
			handlerMenu();
		 }
		});
		
		//对比处理菜单隐藏
		function handlerMenu(){
			//查询编辑角色的菜单
			$.ajax({
			 type:"POST",
			 url:"publicInfoManager.action",
			 data:"method=searchMenuByRoleId",
			 success:function(msg){
			 	for(var i=0;i<$("ul").size();i++){
			 		for(var m in msg){
			 			if($("ul:eq("+i+") font").text()==m){
			 				$("ul:eq("+i+")").show();
			 				for(var j=0;j<msg[m].length;j++){
			 					for(var k=0;k<$("ul:eq("+i+") li").size();k++){
			 						if($("ul:eq("+i+") li:eq("+k+")").text().substring(0,$("ul:eq("+i+") li:eq("+k+")").text().length-2)==msg[m][j].menuName){
				 						$("ul:eq("+i+") li:eq("+k+")").show();
				 					}
			 					}
			 				}
			 			}
			 		}
			 	}
			 }
			});
			
		}
		
		
  	});
  </script>
</html>
